# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default The Witness Template

game: The Witness
requires:
  version: 0.6.6 # Version of Archipelago required for this yaml to work as expected.
  game:
    The Witness: 8.0.0 # Version of the world required for this yaml to work as expected.

The Witness:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  ##################
  # Puzzles & Goal #
  ##################
  puzzle_randomization:
    # Puzzles in this randomizer are randomly generated. This option changes the difficulty/types of puzzles.
    # "Sigma Normal" randomizes puzzles close to their original mechanics and difficulty.
    # "Sigma Expert" is an entirely new experience with extremely difficult random puzzles. Do not underestimate this mode, it is brutal.
    # "Umbra Variety" focuses on unique symbol combinations not featured in the original game. It is harder than Sigma Normal, but easier than Sigma Expert.
    # "None" means that the puzzles are unchanged from the original game.
    sigma_normal: 50
    sigma_expert: 0
    umbra_variety: 0
    none: 0

  victory_condition:
    # Set the victory condition for this world.
    # - Elevator: Start the elevator at the bottom of the mountain (requires Mountain Lasers).
    # - Challenge: Beat the secret Challenge (requires Challenge Lasers).
    # - Mountain Box Short: Input the short solution to the Mountaintop Box (requires Mountain Lasers).
    # - Mountain Box Long: Input the long solution to the Mountaintop Box (requires Challenge Lasers).
    # - Panel Hunt: Solve a specific number of randomly selected panels before going to the secret ending in Tutorial.
    # 
    # It is important to note that while the Mountain Box requires Desert Laser to be redirected in Town for that laser
    # to count, the laser locks on the Elevator and Challenge Timer panels do not.
    elevator: 50
    challenge: 0
    mountain_box_short: 0
    mountain_box_long: 0
    panel_hunt: 0

  mountain_lasers:
    # Sets the number of lasers required to enter the Mountain.
    # If set to a higher number than 7, the mountaintop box will be slightly rotated to make it possible to solve without the hatch being opened.
    # This change will also be applied logically to the long solution ("Challenge Lasers" option).
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 11
    7: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-11: 0 # random value between 1 and 11

  challenge_lasers:
    # Sets the number of lasers required to enter the Caves through the Mountain Bottom Floor Discard and to unlock the Challenge Timer Panel.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 11
    11: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-11: 0 # random value between 1 and 11

  ######################
  # Panel Hunt Options #
  ######################
  panel_hunt_required_percentage:
    # Only relevant if the Victory Condition is "Panel Hunt".
    # 
    # Determines the percentage of "Panel Hunt" panels that need to be solved to win.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 20
    # Maximum value is 100
    63: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-20-100: 0 # random value between 20 and 100

  panel_hunt_total:
    # Only relevant if the Victory Condition is "Panel Hunt".
    # 
    # Sets the number of random panels that will get marked as "Panel Hunt" panels in the "Panel Hunt" game mode.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 5
    # Maximum value is 100
    40: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-5-100: 0 # random value between 5 and 100

  panel_hunt_postgame:
    # Only relevant if the Victory Condition is "Panel Hunt".
    # 
    # In panel hunt, there are technically no postgame locations.
    # Depending on your options, this can leave Mountain and Caves as two huge areas with Hunt Panels in them that cannot be reached until you get enough lasers to go through the very linear Mountain descent.
    # Panel Hunt tends to be more fun when the world is open.
    # This option lets you force anything locked by lasers to be disabled, and thus ineligible for Hunt Panels.
    # To compensate, the respective mountain box solution (short box / long box) will be forced to be a Hunt Panel.
    # 
    # Note: The "Mountain Lasers" option may also affect locations locked by challenge lasers if the only path to those locations leads through the Mountain Entry.
    everything_is_eligible: 0
    disable_mountain_lasers_locations: 0
    disable_challenge_lasers_locations: 0
    disable_anything_locked_by_lasers: 50

  panel_hunt_discourage_same_area_factor:
    # Only relevant if the Victory Condition is "Panel Hunt".
    # 
    # The greater this value, the less likely it is that many Hunt Panels show up in the same area.
    # 
    # At 0, Hunt Panels will be selected randomly.
    # At 100, Hunt Panels will be almost completely evenly distributed between areas.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    40: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  panel_hunt_plando:
    # Only relevant if the Victory Condition is "Panel Hunt".
    # 
    # Specify specific hunt panels you want for your panel hunt game.
    []

  #############
  # Locations #
  #############
  shuffle_discarded_panels:
    # Adds Discarded Panels into the location pool.
    # 
    # Even if this is off, solving certain Discarded Panels may still be necessary to beat the game - The main example of this being the alternate activation triggers in "Disable non randomized puzzles".
    'false': 50
    'true': 0

  shuffle_vault_boxes:
    # Adds Vault Boxes to the location pool.
    'false': 50
    'true': 0

  shuffle_EPs:
    # Adds Environmental/Obelisk Puzzles into the location pool.
    # - Individual: Every Environmental Puzzle sends an item.
    # - Obelisk Sides: Completing every puzzle on one side of an Obelisk sends an item.
    # 
    # Note: In Obelisk Sides, any EPs excluded through another option will be pre-completed on their Obelisk.
    'off': 50
    individual: 0
    obelisk_sides: 0

  EP_difficulty:
    # When "Shuffle Environmental Puzzles" is on, this setting governs which EPs are eligible for the location pool.
    # - Eclipse: Every EP in the game is eligible, including the 1-hour-long "Theater Eclipse EP".
    # - Tedious: Theater Eclipse EP is excluded from the location pool.
    # - Normal: several other difficult or long EPs are excluded as well.
    normal: 50
    tedious: 0
    eclipse: 0

  shuffle_postgame:
    # Adds locations into the pool that are guaranteed to become accessible after or at the same time as your goal.
    # Use this if you don't play with release on victory.
    'false': 50
    'true': 0

  disable_non_randomized_puzzles:
    # Disables puzzles that cannot be randomized.
    # This includes many puzzles that heavily involve the environment, such as Shadows, Monastery or Orchard.
    # 
    # The lasers for those areas will activate as you solve optional puzzles, such as Discarded Panels.
    # Additionally, the panel activating the Jungle Popup Wall will be on from the start.
    'false': 50
    'true': 0

  #####################
  # Progression Items #
  #####################
  shuffle_symbols:
    # If on, you will need to unlock puzzle symbols as items to be able to solve the panels that contain those symbols.
    # 
    # Please note that there is no minimum set of progression items in this randomizer.
    # If you turn this option off and don't turn on door shuffle or obelisk keys, there will be no progression items, which will disallow you from adding your yaml to a multiworld generation.
    'false': 0
    'true': 50

  shuffle_doors:
    # If on, opening doors, moving bridges etc. will require a "key".
    # - Panels: The panel on the door will be locked until receiving its corresponding key.
    # - Doors: The door will open immediately upon receiving its key. Door panels are added as location checks.
    # - Mixed: Includes all doors from "doors", and all control panels (bridges, elevators etc.) from "panels".
    'off': 50
    panels: 0
    doors: 0
    mixed: 0

  door_groupings:
    # Controls how door items are grouped.
    # 
    # - Off: There will be one key for each door, potentially resulting in upwards of 120 keys being added to the item pool.
    # - Regional: All doors in the same general region will open at once with a single key, reducing the amount of door items and complexity.
    'off': 50
    regional: 0

  shuffle_lasers:
    # If on, the 11 lasers are turned into items and will activate on their own upon receiving them.
    'off': 50
    local: 0
    anywhere: 0

  shuffle_boat:
    # If on, adds a "Boat" item to the item pool. Before receiving this item, you will not be able to use the boat.
    'false': 0
    'true': 50

  obelisk_keys:
    # Add one Obelisk Key item per Obelisk, locking you out of solving any of the associated Environmental Puzzles.
    # 
    # Does nothing if "Shuffle Environmental Puzzles" is set to "off".
    'false': 0
    'true': 50

  #########
  # Warps #
  #########
  unlockable_warps:
    # Adds unlockable fast travel points to the game.
    # These warp points are represented by spheres in game. You walk up to one, you unlock it for warping.
    # 
    # The warp points are: Entry, Symmetry Island, Desert, Quarry, Keep, Shipwreck, Town, Jungle, Bunker, Treehouse, Mountaintop, Caves.
    'false': 50
    'true': 0

  ################
  # Filler Items #
  ################
  puzzle_skip_amount:
    # Adds this many Puzzle Skips into the pool, if there is room. Puzzle Skips let you skip one panel.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 30
    10: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-30: 0 # random value between 0 and 30

  trap_percentage:
    # Replaces junk items with traps, at the specified rate.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    20: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  trap_weights:
    # Specify the weights determining how many copies of each trap item will be in your itempool.
    # If you don't want a specific type of trap, you can set the weight for it to 0.
    # If you set all trap weights to 0, you will get no traps, bypassing the "Trap Percentage" option.
    Bonk: 1
    Power Surge: 2
    Slowness: 6

  #########
  # Hints #
  #########
  hint_amount:
    # Adds hints to Audio Logs. If set to a low amount, up to 2 additional duplicates of each hint will be added.
    # Remaining Audio Logs will have junk hints.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 49
    12: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-49: 0 # random value between 0 and 49

  vague_hints:
    # Make Location Hints a bit more vague, where they only tell you about the general area the item is in.
    # Area Hints will be generated as normal.
    # 
    # If set to "stable", only location groups will be used. If location groups aren't implemented for the game your item ended up in, your hint will instead only tell you that the item is "somewhere in" that game.
    # If set to "experimental", region names will be eligible as well, and you will never receive a "somewhere in" hint. Keep in mind that region names are not always intended to be comprehensible to players — only turn this on if you are okay with a bit of chaos.
    # 
    # The distinction does not matter in single player, as Witness implements location groups for every location.
    # 
    # Also, please don't pester any devs about implementing location groups. Bring it up nicely, accept their response even if it is "No".
    'off': 50
    stable: 0
    experimental: 0

  area_hint_percentage:
    # There are two types of hints for The Witness.
    # "Location hints" hint one location in your world or one location containing an item for your world.
    # "Area hints" tell you some general info about the items you can find in one of the main geographic areas on the island.
    # Use this option to specify how many of your hints you want to be area hints. The rest will be location hints.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    33: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  laser_hints:
    # If on, lasers will tell you where their items are if you walk close to them in-game.
    # Only applies if Laser Shuffle is enabled.
    'false': 50
    'true': 0

  ########
  # Misc #
  ########
  early_caves:
    # Adds an item that opens the Caves Shortcuts to Swamp and Mountain, allowing early access to the Caves even if you are not playing a remote Door Shuffle mode.
    # You can either add this item to the pool to be found in the multiworld, or you can outright start with it and have immediate access to the Caves.
    # 
    # If you choose "Add To Pool" and you are already playing a remote Door Shuffle mode, this option will do nothing.
    'off': 50
    add_to_pool: 0
    starting_inventory: 0

  elevators_come_to_you:
    # In vanilla, some bridges/elevators come to you if you walk up to them when they are not currently there.
    # However, there are some that don't. Notably, this prevents Quarry Elevator from being a logical access method into Quarry, because you can send it away without riding ot and then permanently be locked out of using it.
    # 
    # This option allows you to change specific elevators/bridges to "come to you" as well.
    # 
    # - Quarry Elevator: Makes the Quarry Elevator come down when you approach it from lower Quarry and back up when you approach it from above
    # - Swamp Long Bridge: Rotates the side you approach it from towards you, but also rotates the other side away
    # - Bunker Elevator: Makes the Bunker Elevator come to any floor that you approach it from, meaning it can be accessed from the roof immediately
    ['Quarry Elevator']

  death_link:
    # If on, whenever you fail a puzzle (with some exceptions), you and everyone who is also on Death Link dies.
    # The effect of a "death" in The Witness is a Bonk Trap.
    'false': 50
    'true': 0

  death_link_amnesty:
    # The number of panel fails to allow before sending a death through Death Link.
    # 0 means every panel fail will send a death, 1 means every other panel fail will send a death, etc.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 5
    1: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-5: 0 # random value between 0 and 5

  puzzle_randomization_seed:
    # Sigma Rando, which is the basis for all puzzle randomization in this randomizer, uses a seed from 1 to 9999999 for the puzzle randomization.
    # This option lets you set this seed yourself.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 9999999
    random: 50
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-9999999: 0 # random value between 1 and 9999999

  #################
  # Silly Options #
  #################
  shuffle_dog:
    # Adds petting the dog statue in Town into the location pool.
    # Alternatively, you can force it to be a Puzzle Skip.
    'off': 0
    puzzle_skip: 50
    random_item: 0

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
